package au.com.handsunited.model;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import au.com.handsunited.jodawrapper.JodaLocalDateWrapper;
import au.com.handsunited.jodawrapper.JodaLocalTimeWrapper;

/**
 * @author arunda
 *
 */
public class Availability extends MotherOfAllEntities {

	private Boolean alwaysAvailable;

	private JodaLocalDateWrapper startDate;
	private JodaLocalDateWrapper endDate;

	private JodaLocalTimeWrapper startTime;
	private JodaLocalTimeWrapper endTime;

	private Boolean availableOnSunday;
	private JodaLocalTimeWrapper sundayStart;
	private JodaLocalTimeWrapper sundayEnd;

	private Boolean availableOnMonday;
	private JodaLocalTimeWrapper mondayStart;
	private JodaLocalTimeWrapper mondayEnd;

	private Boolean availableOnTuesday;
	private JodaLocalTimeWrapper tuesdayStart;
	private JodaLocalTimeWrapper tuesdayEnd;

	private Boolean availableOnWednesday;
	private JodaLocalTimeWrapper wednesdayStart;
	private JodaLocalTimeWrapper wednesdayEnd;

	private Boolean availableOnThursday;
	private JodaLocalTimeWrapper thursdayStart;
	private JodaLocalTimeWrapper thursdayEnd;

	private Boolean availableOnFriday;
	private JodaLocalTimeWrapper fridayStart;
	private JodaLocalTimeWrapper fridayEnd;

	private Boolean availableOnSaturday;
	private JodaLocalTimeWrapper saturdayStart;
	private JodaLocalTimeWrapper saturdayEnd;


	private static Logger logger = LoggerFactory.getLogger(Availability.class);

	/**
	 *
	 */
	public Availability() {
		super();
		startDate = new JodaLocalDateWrapper();
		endDate = new JodaLocalDateWrapper();

		startTime = new JodaLocalTimeWrapper();
		endTime = new JodaLocalTimeWrapper();

		sundayStart = new JodaLocalTimeWrapper();
		sundayEnd = new JodaLocalTimeWrapper();

		mondayStart = new JodaLocalTimeWrapper();
		mondayEnd = new JodaLocalTimeWrapper();

		tuesdayStart = new JodaLocalTimeWrapper();
		tuesdayEnd = new JodaLocalTimeWrapper();

		wednesdayStart = new JodaLocalTimeWrapper();
		wednesdayEnd = new JodaLocalTimeWrapper();

		thursdayStart = new JodaLocalTimeWrapper();
		thursdayEnd = new JodaLocalTimeWrapper();

		fridayStart = new JodaLocalTimeWrapper();
		fridayEnd = new JodaLocalTimeWrapper();

		saturdayStart = new JodaLocalTimeWrapper();
		saturdayEnd = new JodaLocalTimeWrapper();

	}


	public boolean isAlwaysAvailable() {
		return alwaysAvailable.booleanValue();
	}


	/**
	 * @param alwaysAvailable the alwaysAvailable to set
	 */
	public void setAlwaysAvailable(boolean alwaysAvailable) {
		this.alwaysAvailable = Boolean.valueOf(alwaysAvailable);
	}


	/**
	 * @return the startDate
	 */
	public JodaLocalDateWrapper getStartDate() {
		return startDate;
	}


	/**
	 * @param startDate the startDate to set
	 */
	public void setStartDate(JodaLocalDateWrapper startDate) {
		this.startDate = startDate;
	}


	/**
	 * @return the endDate
	 */
	public JodaLocalDateWrapper getEndDate() {
		return endDate;
	}


	/**
	 * @param endDate the endDate to set
	 */
	public void setEndDate(JodaLocalDateWrapper endDate) {
		this.endDate = endDate;
	}


	/**
	 * @return the startTime
	 */
	public JodaLocalTimeWrapper getStartTime() {
		return startTime;
	}


	/**
	 * @param startTime the startTime to set
	 */
	public void setStartTime(JodaLocalTimeWrapper startTime) {
		this.startTime = startTime;
	}


	/**
	 * @return the endTime
	 */
	public JodaLocalTimeWrapper getEndTime() {
		return endTime;
	}


	/**
	 * @param endTime the endTime to set
	 */
	public void setEndTime(JodaLocalTimeWrapper endTime) {
		this.endTime = endTime;
	}


	/**
	 * @return the availableOnSunday
	 */
	public boolean isAvailableOnSunday() {
		return availableOnSunday;
	}


	/**
	 * @param availableOnSunday the availableOnSunday to set
	 */
	public void setAvailableOnSunday(boolean availableOnSunday) {
		this.availableOnSunday = availableOnSunday;
	}

	public JodaLocalTimeWrapper getSundayStart() {
		return sundayStart;
	}

	public void setSundayStart(JodaLocalTimeWrapper sundayStart) {
		this.sundayStart = sundayStart;
	}

	public JodaLocalTimeWrapper getSundayEnd() {
		return sundayEnd;
	}

	public void setSundayEnd(JodaLocalTimeWrapper sundayEnd) {
		this.sundayEnd = sundayEnd;
	}

	public boolean isAvailableOnMonday() {
		return availableOnMonday;
	}

	public void setAvailableOnMonday(boolean availableOnMonday) {
		this.availableOnMonday = availableOnMonday;
	}

	public JodaLocalTimeWrapper getMondayStart() {
		return mondayStart;
	}

	public void setMondayStart(JodaLocalTimeWrapper mondayStart) {
		this.mondayStart = mondayStart;
	}

	public JodaLocalTimeWrapper getMondayEnd() {
		return mondayEnd;
	}

	public void setMondayEnd(JodaLocalTimeWrapper mondayEnd) {
		this.mondayEnd = mondayEnd;
	}

	public boolean isAvailableOnTuesday() {
		return availableOnTuesday;
	}

	public void setAvailableOnTuesday(boolean availableOnTuesday) {
		this.availableOnTuesday = availableOnTuesday;
	}

	public JodaLocalTimeWrapper getTuesdayStart() {
		return tuesdayStart;
	}

	public void setTuesdayStart(JodaLocalTimeWrapper tuesdayStart) {
		this.tuesdayStart = tuesdayStart;
	}

	public JodaLocalTimeWrapper getTuesdayEnd() {
		return tuesdayEnd;
	}

	public void setTuesdayEnd(JodaLocalTimeWrapper tuesdayEnd) {
		this.tuesdayEnd = tuesdayEnd;
	}

	public boolean isAvailableOnWednesday() {
		return availableOnWednesday;
	}

	public void setAvailableOnWednesday(boolean availableOnWednesday) {
		this.availableOnWednesday = availableOnWednesday;
	}

	public JodaLocalTimeWrapper getWednesdayStart() {
		return wednesdayStart;
	}

	public void setWednesdayStart(JodaLocalTimeWrapper wednesdayStart) {
		this.wednesdayStart = wednesdayStart;
	}

	public JodaLocalTimeWrapper getWednesdayEnd() {
		return wednesdayEnd;
	}

	public void setWednesdayEnd(JodaLocalTimeWrapper wednesdayEnd) {
		this.wednesdayEnd = wednesdayEnd;
	}

	public boolean isAvailableOnThursday() {
		return availableOnThursday;
	}

	public void setAvailableOnThursday(boolean availableOnThursday) {
		this.availableOnThursday = availableOnThursday;
	}

	public JodaLocalTimeWrapper getThursdayStart() {
		return thursdayStart;
	}

	public void setThursdayStart(JodaLocalTimeWrapper thursdayStart) {
		this.thursdayStart = thursdayStart;
	}

	public JodaLocalTimeWrapper getThursdayEnd() {
		return thursdayEnd;
	}

	public void setThursdayEnd(JodaLocalTimeWrapper thursdayEnd) {
		this.thursdayEnd = thursdayEnd;
	}


	public boolean isAvailableOnFriday() {
		return availableOnFriday;
	}

	public void setAvailableOnFriday(boolean availableOnFriday) {
		this.availableOnFriday = availableOnFriday;
	}

	public JodaLocalTimeWrapper getFridayStart() {
		return fridayStart;
	}

	public void setFridayStart(JodaLocalTimeWrapper fridayStart) {
		this.fridayStart = fridayStart;
	}

	public JodaLocalTimeWrapper getFridayEnd() {
		return fridayEnd;
	}

	public void setFridayEnd(JodaLocalTimeWrapper fridayEnd) {
		this.fridayEnd = fridayEnd;
	}

	public boolean isAvailableOnSaturday() {
		return availableOnSaturday;
	}

	public void setAvailableOnSaturday(boolean availableOnSaturday) {
		this.availableOnSaturday = availableOnSaturday;
	}

	public JodaLocalTimeWrapper getSaturdayStart() {
		return saturdayStart;
	}

	public void setSaturdayStart(JodaLocalTimeWrapper saturdayStart) {
		this.saturdayStart = saturdayStart;
	}


	public JodaLocalTimeWrapper getSaturdayEnd() {
		return saturdayEnd;
	}

	public void setSaturdayEnd(JodaLocalTimeWrapper saturdayEnd) {
		this.saturdayEnd = saturdayEnd;
	}

}
